#ifndef PSFPrimaryGeneratorMessenger_h
#define PSFPrimaryGeneratorMessenger_h 1

#include "G4UImessenger.hh"

class PSFPrimaryGeneratorAction;

class G4UIdirectory;
class G4UIcmdWithABool;
class G4UIcmdWithADoubleAndUnit;

class PSFPrimaryGeneratorMessenger : public G4UImessenger
{
public:
  PSFPrimaryGeneratorMessenger(PSFPrimaryGeneratorAction *);
  ~PSFPrimaryGeneratorMessenger() override;

  void SetNewValue(G4UIcommand *, G4String) override;

private:
  PSFPrimaryGeneratorAction *fAction = nullptr;

  G4UIdirectory *fGunDir = nullptr;

  G4UIcmdWithADoubleAndUnit *fSetPolarizationCmd = nullptr;
  G4UIcmdWithADoubleAndUnit *fSetDecayTimeConstantCmd = nullptr;
};

#endif
